package bb.lanxing.mvp.model.i;

import bb.lanxing.lib.kt.model.geo.IGeoPoint;
import bb.lanxing.model.database.RouteBook;
import bb.lanxing.model.lushu.WayPoint;
import java.io.IOException;
import java.util.List;

public interface RouteBookSourceModel {
    void addWayPoints(WayPoint... points);

    void addWayPointsAt(int index, WayPoint... wayPoints);

    RouteBook build() throws IOException, IllegalArgumentException;

    double getDistance();

    WayPoint getWayPointAt(int index);

    int getWayPointSize();

    List<WayPoint> getWayPoints();

    int indexOf(WayPoint wayPoint);

    List<IGeoPoint> preview() throws IOException, IllegalArgumentException;

    RouteBook reBuild(RouteBook routeBook) throws IOException, IllegalArgumentException;

    void release();

    void removeAllWayPoint();

    WayPoint removeAt(int index);

    void setWayPointAt(int wayPointAt, WayPoint wayPoint);
}
